home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / MRAC / Intervals / i-process < prev    next >
Lisp/Scheme  |  1998-10-24  |  2KB  |  50 lines

  1. i-process start-symbol inst-range integer-list
  2.  
  3. start-symbol - symbol, integer, pitch
  4. inst-range   - symbol, integer, pitch, instrument-name
  5.  
  6. In serial and post-serial composition strategies intervallic processing, correspondence and pattern-making is integral to the generative mechanisms of pitch. The function i-process enables complex symbol patterns to be generated from relatively simple lists of integers.
  7.  
  8. Use this function to process and convert interval lists into symbol lists.
  9.  
  10. (setq list
  11.       (gen-random .34 12
  12.                   '(2 3 6 10 11 14 -2 -3 -6 -10 -11 -14)))
  13. => (-3 -6 2 11 14 -6 14 -11 10 -14 -10 10)
  14.  
  15. (i-process 'j -5 43 list)
  16. => (j g a c n \\ v \d y \c u k u)
  17.  
  18. In the example above a list of integers representing interval difference is processed from a given start-symbol 'j. An inst-range paramter is given for a range of semitone values taking as its zero base middle C or in SCOM notation c 5. Thus -5 43 is G 4 up 4 octaves. The next example shows how chords may be processed and how pitch notation may be used rather than specific symbols to specify the start-symbol.
  19.  
  20. (i-process 'c#4 -5 43 '(0 6 (1 -6)))
  21. => (b b h ic)
  22.  
  23. (i-process 'c#4 'c#4 'c#5 '(0 6 (1 -6)))
  24. => (b b h ic)
  25.  
  26. In this next example a list of symbols denotes the start-symbol for each symbol list in a series of lists. 
  27.  
  28. (i-process '(a b c) -5 43 '((2 4 5 6) ((-6  8) 11 -6 1) (4 7 0)))
  29. => ((a c g l r) (b -fd o i j) (c g n n))
  30.  
  31. (setq list2
  32.       (g-interval .23 :shuffle
  33.                   '(2 3) '((1 2 6 11 13 14) (1 2 6))))
  34.  
  35. (i-process '(0 1 2 3 4 5) 'alto-flute list2)
  36. => ((a b d j w i t) (b d -d k y z o) (c i h f) (d c i g) (e g f -b))
  37.  
  38. By setting the start-symbol to nil or float seed you can randomize the start-symbol to be selected from any symbol in the given range. 
  39.  
  40. (i-process nil -5 43 list)
  41. => (\` ] w y \d v p ^ s ] o e o) ...
  42.  
  43. (i-process .45 -5 43 list)
  44. => (f c -e -c j x r \` u _ q g q)
  45.  
  46. (i-process nil 'alto-flute list2)
  47. => ((g h j p ] o z) (m o i v h i t) (x ^ ] [) (^ ] w u) (x z y s))
  48.  
  49. All sublists randomize the start-symbol (in the given range).
  50.